Autogenerated HTML docs for v1.4.4-rc1
diff --git a/git-pickaxe.html b/git-pickaxe.html new file mode 100644 index 0000000..8779622 --- /dev/null +++ b/git-pickaxe.html
@@ -0,0 +1,516 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="generator" content="AsciiDoc 7.0.2" /> +<style type="text/css"> +/* Debug borders */ +p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { +/* + border: 1px solid red; +*/ +} + +body { + margin: 1em 5% 1em 5%; +} + +a { color: blue; } +a:visited { color: fuchsia; } + +em { + font-style: italic; +} + +strong { + font-weight: bold; +} + +tt { + color: navy; +} + +h1, h2, h3, h4, h5, h6 { + color: #527bbd; + font-family: sans-serif; + margin-top: 1.2em; + margin-bottom: 0.5em; + line-height: 1.3; +} + +h1 { + border-bottom: 2px solid silver; +} +h2 { + border-bottom: 2px solid silver; + padding-top: 0.5em; +} + +div.sectionbody { + font-family: serif; + margin-left: 0; +} + +hr { + border: 1px solid silver; +} + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +pre { + padding: 0; + margin: 0; +} + +span#author { + color: #527bbd; + font-family: sans-serif; + font-weight: bold; + font-size: 1.2em; +} +span#email { +} +span#revision { + font-family: sans-serif; +} + +div#footer { + font-family: sans-serif; + font-size: small; + border-top: 2px solid silver; + padding-top: 0.5em; + margin-top: 4.0em; +} +div#footer-text { + float: left; + padding-bottom: 0.5em; +} +div#footer-badges { + float: right; + padding-bottom: 0.5em; +} + +div#preamble, +div.tableblock, div.imageblock, div.exampleblock, div.verseblock, +div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, +div.admonitionblock { + margin-right: 10%; + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.admonitionblock { + margin-top: 2.5em; + margin-bottom: 2.5em; +} + +div.content { /* Block element content. */ + padding: 0; +} + +/* Block element titles. */ +div.title, caption.title { + font-family: sans-serif; + font-weight: bold; + text-align: left; + margin-top: 1.0em; + margin-bottom: 0.5em; +} +div.title + * { + margin-top: 0; +} + +td div.title:first-child { + margin-top: 0.0em; +} +div.content div.title:first-child { + margin-top: 0.0em; +} +div.content + div.title { + margin-top: 0.0em; +} + +div.sidebarblock > div.content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} + +div.listingblock > div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock > div.content { + padding-left: 2.0em; +} +div.quoteblock .attribution { + text-align: right; +} + +div.admonitionblock .icon { + vertical-align: top; + font-size: 1.1em; + font-weight: bold; + text-decoration: underline; + color: #527bbd; + padding-right: 0.5em; +} +div.admonitionblock td.content { + padding-left: 0.5em; + border-left: 2px solid silver; +} + +div.exampleblock > div.content { + border-left: 2px solid silver; + padding: 0.5em; +} + +div.verseblock div.content { + white-space: pre; +} + +div.imageblock div.content { padding-left: 0; } +div.imageblock img { border: 1px solid silver; } +span.image img { border-style: none; } + +dl { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +dt { + margin-top: 0.5em; + margin-bottom: 0; + font-style: italic; +} +dd > *:first-child { + margin-top: 0; +} + +ul, ol { + list-style-position: outside; +} +ol.olist2 { + list-style-type: lower-alpha; +} + +div.tableblock > table { + border-color: #527bbd; + border-width: 3px; +} +thead { + font-family: sans-serif; + font-weight: bold; +} +tfoot { + font-weight: bold; +} + +div.hlist { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +td.hlist1 { + vertical-align: top; + font-style: italic; + padding-right: 0.8em; +} +td.hlist2 { + vertical-align: top; +} + +@media print { + div#footer-badges { display: none; } +} +include::./stylesheets/xhtml11-manpage.css[] +/* Workarounds for IE6's broken and incomplete CSS2. */ + +div.sidebar-content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} +div.sidebar-title, div.image-title { + font-family: sans-serif; + font-weight: bold; + margin-top: 0.0em; + margin-bottom: 0.5em; +} + +div.listingblock div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock-content { + padding-left: 2.0em; +} + +div.exampleblock-content { + border-left: 2px solid silver; + padding-left: 0.5em; +} +</style> +<title>git-pickaxe(1)</title> +</head> +<body> +<div id="header"> +<h1> +git-pickaxe(1) Manual Page +</h1> +<h2>NAME</h2> +<div class="sectionbody"> +<p>git-pickaxe - + Show what revision and author last modified each line of a file +</p> +</div> +</div> +<h2>SYNOPSIS</h2> +<div class="sectionbody"> +<div class="verseblock"> +<div class="content"><em>git-pickaxe</em> [-c] [-l] [-t] [-f] [-n] [-p] [-L n,m] [-S <revs-file>] + [-M] [-C] [-C] [--since=<date>] [<rev>] [--] <file></div></div> +</div> +<h2>DESCRIPTION</h2> +<div class="sectionbody"> +<p>Annotates each line in the given file with information from the revision which +last modified the line. Optionally, start annotating from the given revision.</p> +<p>Also it can limit the range of lines annotated.</p> +<p>This report doesn't tell you anything about lines which have been deleted or +replaced; you need to use a tool such as <a href="git-diff.html">git-diff(1)</a> or the "pickaxe" +interface briefly mentioned in the following paragraph.</p> +<p>Apart from supporting file annotation, git also supports searching the +development history for when a code snippet occured in a change. This makes it +possible to track when a code snippet was added to a file, moved or copied +between files, and eventually deleted or replaced. It works by searching for +a text string in the diff. A small example:</p> +<div class="listingblock"> +<div class="content"> +<pre><tt>$ git log --pretty=oneline -S'blame_usage' +5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file> +ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</tt></pre> +</div></div> +</div> +<h2>OPTIONS</h2> +<div class="sectionbody"> +<dl> +<dt> +-c, --compatibility +</dt> +<dd> +<p> + Use the same output mode as <a href="git-annotate.html">git-annotate(1)</a> (Default: off). +</p> +</dd> +<dt> +-L n,m +</dt> +<dd> +<p> + Annotate only the specified line range (lines count from 1). +</p> +</dd> +<dt> +-l, --long +</dt> +<dd> +<p> + Show long rev (Default: off). +</p> +</dd> +<dt> +-t, --time +</dt> +<dd> +<p> + Show raw timestamp (Default: off). +</p> +</dd> +<dt> +-S, --rev-file <revs-file> +</dt> +<dd> +<p> + Use revs from revs-file instead of calling <a href="git-rev-list.html">git-rev-list(1)</a>. +</p> +</dd> +<dt> +-f, --show-name +</dt> +<dd> +<p> + Show filename in the original commit. By default + filename is shown if there is any line that came from a + file with different name, due to rename detection. +</p> +</dd> +<dt> +-n, --show-number +</dt> +<dd> +<p> + Show line number in the original commit (Default: off). +</p> +</dd> +<dt> +-p, --porcelain +</dt> +<dd> +<p> + Show in a format designed for machine consumption. +</p> +</dd> +<dt> +-M +</dt> +<dd> +<p> + Detect moving lines in the file as well. When a commit + moves a block of lines in a file (e.g. the original file + has A and then B, and the commit changes it to B and + then A), traditional <em>blame</em> algorithm typically blames + the lines that were moved up (i.e. B) to the parent and + assigns blame to the lines that were moved down (i.e. A) + to the child commit. With this option, both groups of + lines are blamed on the parent. +</p> +</dd> +<dt> +-C +</dt> +<dd> +<p> + In addition to <tt>-M</tt>, detect lines copied from other + files that were modified in the same commit. This is + useful when you reorganize your program and move code + around across files. When this option is given twice, + the command looks for copies from all other files in the + parent for the commit that creates the file in addition. +</p> +</dd> +<dt> +-h, --help +</dt> +<dd> +<p> + Show help message. +</p> +</dd> +</dl> +</div> +<h2>THE PORCELAIN FORMAT</h2> +<div class="sectionbody"> +<p>In this format, each line is output after a header; the +header at the minumum has the first line which has:</p> +<ul> +<li> +<p> +40-byte SHA-1 of the commit the line is attributed to; +</p> +</li> +<li> +<p> +the line number of the line in the original file; +</p> +</li> +<li> +<p> +the line number of the line in the final file; +</p> +</li> +<li> +<p> +on a line that starts a group of line from a different + commit than the previous one, the number of lines in this + group. On subsequent lines this field is absent. +</p> +</li> +</ul> +<p>This header line is followed by the following information +at least once for each commit:</p> +<ul> +<li> +<p> +author name ("author"), email ("author-mail"), time + ("author-time"), and timezone ("author-tz"); similarly + for committer. +</p> +</li> +<li> +<p> +filename in the commit the line is attributed to. +</p> +</li> +<li> +<p> +the first line of the commit log message ("summary"). +</p> +</li> +</ul> +<p>The contents of the actual line is output after the above +header, prefixed by a TAB. This is to allow adding more +header elements later.</p> +</div> +<h2>SPECIFIYING RANGES</h2> +<div class="sectionbody"> +<p>Unlike <tt>git-blame</tt> and <tt>git-annotate</tt> in older git, the extent +of annotation can be limited to both line ranges and revision +ranges. When you are interested in finding the origin for +ll. 40-60 for file <tt>foo</tt>, you can use <tt>-L</tt> option like this:</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>git pickaxe -L 40,60 foo</tt></pre> +</div></div> +<p>When you are not interested in changes older than the version +v2.6.18, or changes older than 3 weeks, you can use revision +range specifiers similar to <tt>git-rev-list</tt>:</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>git pickaxe v2.6.18.. -- foo +git pickaxe --since=3.weeks -- foo</tt></pre> +</div></div> +<p>When revision range specifiers are used to limit the annotation, +lines that have not changed since the range boundary (either the +commit v2.6.18 or the most recent commit that is more than 3 +weeks old in the above example) are blamed for that range +boundary commit.</p> +<p>A particularly useful way is to see if an added file have lines +created by copy-and-paste from existing files. Sometimes this +indicates that the developer was being sloppy and did not +refactor the code properly. You can first find the commit that +introduced the file with:</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>git log --diff-filter=A --pretty=short -- foo</tt></pre> +</div></div> +<p>and then annotate the change between the commit and its +parents, using <tt>commit^!</tt> notation:</p> +<div class="literalblock"> +<div class="content"> +<pre><tt>git pickaxe -C -C -f $commit^! -- foo</tt></pre> +</div></div> +</div> +<h2>SEE ALSO</h2> +<div class="sectionbody"> +<p><a href="git-blame.html">git-blame(1)</a></p> +</div> +<h2>AUTHOR</h2> +<div class="sectionbody"> +<p>Written by Junio C Hamano <junkio@cox.net></p> +</div> +<h2>GIT</h2> +<div class="sectionbody"> +<p>Part of the <a href="git.html">git(7)</a> suite</p> +</div> +<div id="footer"> +<div id="footer-text"> +Last updated 08-Nov-2006 01:33:29 UTC +</div> +</div> +</body> +</html>